<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>24 借用构造函数继承</title>
	</head>
	<body>
		<script type="text/javascript">
			// 经典继承:在子类的构造函数内部调用父类的构造函数
			// 缺点:父类定义的共享方法不能被子类所继承下来
			function Animal(name){
				this.name = name;
				this.colors = ['red','green','blue'];
			}
			Animal.prototype.getName = function(){
				return this.name;
			}
			
			function Dog(name){
				// 继承了Animal
				// 当new实例的时候,内部构造函数中this指向了d1,然后在当前构造函数内部再去通过call再去调用构造函数,那么父类中的构造函数中的this指向了d1,但是方法不能被继承下来
				Animal.call(this,name);
			}
			var d1 = new Dog('阿黄');
			var d2 = new Dog('小红');
			d1.colors.push('purple');
			console.log(d1.name);
			console.log(d1.colors);
			// console.log(d1.getName());
		</script>
	</body>
</html>
